
/**
 * 处理Api的返回结果
 * @param result       api返回结果
 * @param onSuccess    成功时回调，只有当resp.data.code == 200时回调，返回resp.data
 * @param onFaild      当resp具有.data.code时，返回错误码对应的错误信息，当resp不具有.data.code时，返回Unknown Error
 *                    当Promise被捕获到异常时，返回异常信息
 * @param onFinished   可省略，默认情况下什么都不做，不管Api调用成功与否都在最后被调用
 */
export default function useApiPromiseHandler(t, result, onSuccess, onFaild, onFinished = () => {}) {
  result.then(
    resp => {
      if (resp.data.code == 200) {
        onSuccess(resp.data);
      } else if (resp.data.code) {
        onFaild(t(`responseCode.${resp.data.code}`));
      } else {
        onFaild('Unknown Error');
      }
    }
  ).catch((e) => {
    console.log('error', e)
    onFaild(e);
  })
  .finally(onFinished);
}